home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
artemis
/
artsrc2
/
gwrtreg.asm
< prev
next >
Wrap
Assembly Source File
|
1994-06-01
|
2KB
|
95 lines
; 私製ライブラリ・グラフィック篇
; (c) MATSUUCHI Ryosuke in Dec,1992
;
; gwrtreg.asm
;
; 1992.12.28(Sun)
public _gwrtreg, gwrtreg
include grplib.inc
assume cs:cseg, ds:dseg
dseg segment dword 'DATA'
dseg ends
cseg segment dword 'CODE'
;---------------------------------------------------------------
; _gwrtreg : 表示機能レジスタへの書き込み
; in AX:レジスタ番号
; EDX:データ
;
; void gwrtreg(int reg, unsigned int dat)
;---------------------------------------------------------------
;レジスタ番号と実際のレジスタとの対応:
; (番号) (サイズ) (機能)
; 0 DWord パックドピクセルマスクレジスタ
gwrtreg proc near
mov ax,[esp+4]
mov edx,[esp+8]
call _gwrtreg
ret
gwrtreg endp
_gwrtreg proc
push eax
push ebx
push ecx
push edx
mov bx,ax ;BX = reg#
mov ecx,edx ;ECX = data
cmp ax,0
jne #0
; ;AX=0 (パックドピクセルマスクレジスタ)
call reg_packPixel
jmp #1
#0:
#1: pop edx
pop ecx
pop ebx
pop eax
ret
_gwrtreg endp
; reg_packPixel : パックドピクセルマスクレジスタへの書き込み
; in ECX : data
; reg eax,ecx,edx
reg_packPixel proc
mov dx,458h ; (下位ワードの書き込み)
xor al,al
out dx,al
add dx,2
mov al,cl
out dx,al
inc dx
mov al,ch
out dx,al
shr ecx,16 ; (上位ワードの書き込み)
mov dx,458h
mov al,1
out dx,al
add dx,2
mov al,cl
out dx,al
inc dx
mov al,ch
out dx,al
ret
reg_packPixel endp
cseg ends
end